import hashlib as hasher
import datetime as date


class Block:

    def __init__(self,index,timestamp,data,previous_hash):
        self.index=index
        self.timestamp=timestamp
        self.data=data
        self.previous_hash=previous_hash
        self.hash=self.hash_block()
    def hash_block(self):
        
        a=hasher.md5(str(self.index).encode("utf-8"))
        b=hasher.md5(str(self.timestamp).encode("utf-8"))
        c=hasher.md5(str(self.data).encode("utf-8"))
        d=hasher.md5(str(self.previous_hash).encode("utf-8"))
        return a.hexdigest()
        return b.hexdigest()
        return c.hexdigest()
        return d.hexdigest()        
def crest_genesis_block():
    return Block(0,date.datetime.now(),"Genesis Block","0")
def next_block(last_block):
    this_index=last_block.index+1
    this_timestamp=date.datetime.now()
    this_data="我是块链"+str(this_index)
    this_hash=last_block.hash
    return Block(this_index,this_timestamp,this_data,this_hash)
blockchain=[crest_genesis_block()]
previous_block=blockchain[0]
num_of_block_to_add=30
for i in range(0,num_of_block_to_add):
    block_to_add=next_block(previous_block)
    blockchain.append(block_to_add)
    previous_block=block_to_add
    print(f"{i}号区块已经建成".format(block_to_add.index),block_to_add.hash)
    
